package com.work.studio.net.api;


import com.work.studio.entitys.AttendanceStatisticsEntity;
import com.work.studio.entitys.BaseApiEntity;
import com.work.studio.entitys.CustomerEntity;
import com.work.studio.entitys.CustomerSignEntity;
import com.work.studio.entitys.CustomerVisitRntity;
import com.work.studio.entitys.DailyFinishEntity;
import com.work.studio.entitys.RankingEntity;
import com.work.studio.entitys.UpdateAppEntity;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.QueryMap;

public interface RetrofitService {
    /**
     * 考勤缺勤统计
     * @param map
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppAPi/GetDaySignCount")
    Observable<BaseApiEntity<AttendanceStatisticsEntity>> requestToday(@QueryMap Map<String, Object> map);

    /**
     *销售日报完成率
     * @param map
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppAPi/GetUserDayReportPercentByDay")
    Observable<BaseApiEntity<DailyFinishEntity>> requestFinish(@QueryMap Map<String, Object> map);

    /**
     * 客户拜访次数日统计
     * @param map
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppAPi/GetUserSignRecordInMonth")
    Observable<BaseApiEntity<List<CustomerVisitRntity>>> requestVisitor(@QueryMap Map<String, Object> map);

    /**
     * 获取某月份客户拜访客户排行榜
     * @param map
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppAPi/GetUserCustomerCountByMonth")
    Observable<BaseApiEntity<List<RankingEntity>>> requestRanking(@QueryMap Map<String, Object> map);

    /**
     * 获取某日客户实时拜访
     * @param map
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppApi/GetUserCustomerSignByDay")
    Observable<BaseApiEntity<CustomerSignEntity>> requestCustomerRecycle(@QueryMap Map<String, Object> map);

    /**
     * 地图数据
     * @param map
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppApi/GetUserCustomerSignByDay")
    Observable<BaseApiEntity<CustomerSignEntity>> requestMapViewDatas(@QueryMap Map<String, Object> map);

    /**
     * 版本检测
     * @return
     */
    @GET("/JLCloudSalesmanTvApp/AppApi/GetAppSetInfo")
    Observable<BaseApiEntity<UpdateAppEntity>> requestVersion();


    @GET("/JLCloudSalesmanTvApp/AppApi/GetUserCountInfoByDay")
    Observable<BaseApiEntity<CustomerEntity>> requestCustomer(@QueryMap Map<String, Object> map);
}
